//用户路由器
//引入pool.js
const pool = require('../pool.js');
//引入express模块
const express = require("express");
const e = require('express');
//创建路由器对象
const router = express.Router();
//添加路由
//1.用户注册（post /reg）
//接口地址：127.0.0.1
//请求方法：post

//注册用户
router.post("/reg",(req,res,next) => {
    //1.1获取post传递的参数
    var obj = req.body;
    console.log(obj);
    //1.2验证各项值是否为空
    if(!obj.uname){
        res.send({code:401,msg:'uname不能为空'});
        //阻止往后执行
        return;
    }
    if(!obj.upwd){
        res.send({code:402,msg:'upwd不能为空'});
        //阻止往后执行
        return;
    }
    if(!obj.email){
        res.send({code:403,msg:'email不能为空'});
        //阻止往后执行
        return;
    }
    if(!obj.phone){
        res.send({code:404,msg:'phone不能为空'});
        //阻止往后执行
        return;
    }
    //验证手机号码格式是否正确
    if(!/^1[3-9]\d{9}$/.test(obj.phone)){
        res.send({code:405,msg:'手机号码格式不正确'});
        return;
    }
    // 1.3执行sql命令
    pool.query("insert into xz_user set ?",[obj],(err,result) => {
        if(err){
            //如果执行sql命令出现错误，交给下一个错误处理中间件
            next(err);
            //阻止往后执行
            return;
        }
        console.log(result);
        res.send({code:200,msg:'注册成功'});
    });  
});

//2.用户登录(post /login)
//接口地址：http://127.0.0.1:8080/v1/users/login
//请求方法：post
router.post('/login',(req,res,next) => {
    //2.1获取post传递的参数
    var obj = req.body;
    // console.log(obj);
    // 2.2验证是否为空
    if(!obj.uname){
        res.send({code:401,msg:'uname不能为空'});
        return;
    }
    if(!obj.upwd){
        res.send({code:402,msg:'upwd不能为空'})
        return;
    }
    // 2.3执行sql命令
    pool.query("select * from xz_user where uname = ? and upwd = ?",[obj.uname,obj.upwd],(err,result) => {
        if(err){
            next(err);
            return;
        }
        console.log(result);
        if(result.length !== 0){
            res.send({code:200,msg:"登录成功"})
        }else{
            res.send({code:201,msg:"登录失败"})
        }
    })

})

//3.删除用户(delete  /编号)
//接口地址：
//请求方法
router.delete("/:uid",(req,res,next) => {
    //获取传参
    var obj = req.params;
    console.log(obj);
    //执行sql命令
    pool.query("delete from xz_user where uid = ?",[req.params.uid],(err,result) => {
        if(err){
            next(err);
            return;
        }
        if(result.affectedRows !== 0){
            res.send({code:200,msg:"删除成功"});
        }else{
            res.send({code:201,msg:"删除失败"})
        }
    })
})

// 4.用户修改
router.put('/',(req,res,next) => { 
    var obj = req.body;
    console.log(obj);
    //验证各项是否为空
    var i = 400;
    for(var k in obj){
        if(!obj[k]){
            i++;
            res.send({code:i,msg:k+"不能为空"});
            return;
        }
    }
    if(!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(obj.email)){
        res.send({code:406,msg:'邮箱不正确'})
        return;
    }
    if(!/^1[3-9]\d{9}$/.test(obj.phone)){
        res.send({code:407,msg:'手机号码格式不正确'});
        return;
    }
    pool.query("update xz_user set ? where uid = ?",[obj,obj.uid],(err,result) => {
        if(err){
            next(err);
            return;
        }
        if(result.affectedRows !== 0){
            res.send({code:200,msg:'修改成功'})
        }else{
            res.send({ code:201,msg:'修改失败'})
        }     
    });  
})
    
//检测邮箱是否可用(get /checkmail)
//检测手机是否可用(get /checkphone)
//添加用户列表(get /)

//暴露路由器
module.exports = router;

